package com.gongye.courseselectionsystem.utils;

import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author baorongchuan
 */
@Component
public class CompareTimeUtil {

    /**
     * 进行日期格式化
     *
     * @param date         当前时间
     * @param format       格式化时间 例如"yyyy-MM-dd HH:mm:ss"
     * @param startTimeStr 开始时间
     * @param endTimeStr   结束时间
     * @return true表示在当前时间，false表示不在当时间
     */

    public static Boolean isBelong(Date date, String format, String startTimeStr, String endTimeStr) {
        SimpleDateFormat df = new SimpleDateFormat(format);
        Date beginTime = null;
        Date endTime = null;
        try {
            date = df.parse(df.format(date));
            beginTime = df.parse(startTimeStr);
            endTime = df.parse(endTimeStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return belongCalendar(date, beginTime, endTime);
    }

    /**
     * @param nowTime   当前时间
     * @param beginTime 开始时间
     * @param endTime   结束时间
     * @return 如果当前时间在开始时间和结束时间内，返回true,否则返回false
     */
    public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
        Calendar date = Calendar.getInstance();
        date.setTime(nowTime);

        Calendar begin = Calendar.getInstance();
        begin.setTime(beginTime);

        Calendar end = Calendar.getInstance();
        end.setTime(endTime);

        // 如果当前时间在开始时间和结束时间内，返回true,否则返回false
        return date.after(begin) && date.before(end);
    }
}
